//go:build linux
// +build linux

package filecopy

import (
	"fmt"
	"io"
	"os"
	"time"
)

// CopyWithIO 使用 io.Copy 实现最基础的文件复制。
func CopyWithIO(srcPath, dstPath string) error {
	start := time.Now()

	src, err := os.Open(srcPath)
	if err != nil {
		return fmt.Errorf("open src: %w", err)
	}
	defer src.Close()

	dst, err := os.Create(dstPath)
	if err != nil {
		return fmt.Errorf("create dst: %w", err)
	}
	defer dst.Close()

	if _, err := io.Copy(dst, src); err != nil {
		return fmt.Errorf("copy data: %w", err)
	}
	if err := dst.Sync(); err != nil {
		return fmt.Errorf("sync dst: %w", err)
	}

	_ = start // 预留给可能的统计日志
	return nil
}
